package org.jeecg.modules.rental.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.rental.entity.RentalOrder;
import org.jeecg.modules.rental.req.RentalEBikeOrderReq;

import java.time.LocalDateTime;

/**
 * @Description: 租车订单
 * @Author: sean
 * @Date:   2024-06-17
 * @Version: V1.0
 */
public interface IRentalOrderService extends IService<RentalOrder> {

//    Result confirm(ConfirmOrderReq req);

    Result<Boolean> cancellationOrder(String orderId);

    Page<RentalOrder> orderList(Page page, RentalOrder rentalOrder);

    Result<RentalOrder> confirmOrder(RentalEBikeOrderReq req);

//    @Transactional
//    Result<RentalOrder> createChargingPileOrder(ChargingPileOrderReq req);

    Result<RentalOrder> renewal(RentalEBikeOrderReq req);

    void handleRentalOrder(RentalOrder rentalOrder, LocalDateTime now);

    void handleRenewalOrder(RentalOrder rentalOrder);

    void handleOvertimeOrder(RentalOrder rentalOrder);

    void handleReservationOrder(RentalOrder rentalOrder, LocalDateTime now);

}
